package com.wang.springbootinit.controller.admin;

import com.wang.springbootinit.common.BaseResponse;
import com.wang.springbootinit.common.ResultUtils;
import com.wang.springbootinit.model.dto.MakeupArrangeDTO;
import com.wang.springbootinit.model.dto.MakeupQueryDTO;
import com.wang.springbootinit.service.MakeupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 补考审核管理后台接口
 * @author wang
 */
@RestController
@RequestMapping("/admin/makeup")
public class AdminMakeupController {
    @Autowired
    private MakeupService makeupService;

    /**
     * 安排补考
     * @param arrangeDTO 补考安排信息
     * @return 安排结果
     */
    @PostMapping("/arrange")
    public BaseResponse arrangeMakeup(@RequestBody MakeupArrangeDTO arrangeDTO) {
        return ResultUtils.success(makeupService.arrangeMakeup(arrangeDTO));
    }

    /**
     * 取消补考
     * @param arrangeDTO
     * @return
     */
    @PostMapping("/audit")
    public BaseResponse audit(@RequestBody MakeupArrangeDTO arrangeDTO) {
        return ResultUtils.success(makeupService.audit(arrangeDTO));
    }

    /**
     * 更新补考成绩
     * @param makeupId 补考记录ID
     * @param scoreId 成绩ID
     * @return 更新结果
     */
    @PostMapping("/score")
    public BaseResponse updateMakeupScore(@RequestParam Long makeupId, @RequestParam Long scoreId) {
        return ResultUtils.success(makeupService.updateMakeupScore(makeupId, scoreId));
    }

    /**
     * 分页获取补考记录
     * @param queryDTO 查询条件
     * @return 补考记录分页数据
     */
    @GetMapping("/page")
    public BaseResponse getMakeupPage(MakeupQueryDTO queryDTO) {
        return ResultUtils.success(makeupService.getMakeupPage(queryDTO));
    }

    /**
     * 根据ID获取补考记录详情
     * @param makeupId 补考记录ID
     * @return 补考记录详情
     */
    @GetMapping("/{id}")
    public BaseResponse getMakeupById(@PathVariable("id") Long makeupId) {
        return ResultUtils.success(makeupService.getMakeupById(makeupId));
    }
} 